﻿Public Class DperfilOpciones

    Public Shared Function SeleccionarTodo(ByVal descEmpresa As String, ByVal pPerfilOpciones As EperfilOpciones) As List(Of EperfilOpciones)
        Dim perfilOpciones As List(Of EperfilOpciones) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_perfilOpcion_sel", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPerfil", SqlDbType.Int).Value = pPerfilOpciones.idPerfil
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            perfilOpciones = New List(Of EperfilOpciones)
                            Dim perfilOpcion As EperfilOpciones = Nothing
                            Do While dr.Read
                                perfilOpcion = New EperfilOpciones( _
                                    dr.GetInt32(dr.GetOrdinal("idPerfil")), _
                                    dr.GetInt32(dr.GetOrdinal("idModulo")), _
                                    dr.GetString(dr.GetOrdinal("descModulo")), _
                                    dr.GetInt32(dr.GetOrdinal("idSubModulo")), _
                                    dr.GetString(dr.GetOrdinal("descSubModulo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOpcion")), _
                                    dr.GetString(dr.GetOrdinal("descOpcion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetString(dr.GetOrdinal("Checked")))
                                perfilOpciones.Add(perfilOpcion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return perfilOpciones
    End Function
    Public Shared Function Añadir(ByVal descEmpresa As String, ByVal pOpciones As EperfilOpciones) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_perfilOpcion_add", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPerfil", SqlDbType.Int).Value = pOpciones.idPerfil
                cmd.Parameters.Add("@idModulo", SqlDbType.Int).Value = pOpciones.idModulo
                cmd.Parameters.Add("@idSubModulo ", SqlDbType.Int).Value = pOpciones.idSubModulo
                cmd.Parameters.Add("@idOpcion", SqlDbType.Int).Value = pOpciones.idOpcion
                cmd.Parameters.Add("@seleccionar ", SqlDbType.Int).Value = pOpciones.seleccionar
                cmd.Parameters.Add("@idUsuario", SqlDbType.Int).Value = pOpciones.idUsuario
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function EliminarAll(ByVal descEmpresa As String, ByVal pOpciones As EperfilOpciones) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_perfilOpcion_delXAll", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPerfil", SqlDbType.Int).Value = pOpciones.idPerfil
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function Eliminar(ByVal descEmpresa As String, ByVal pOpciones As EperfilOpciones) As Boolean
        Dim resultado As Boolean = False

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_perfilOpcion_del", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPerfil", SqlDbType.Int).Value = pOpciones.idPerfil
                cmd.Parameters.Add("@idModulo", SqlDbType.Int).Value = pOpciones.idModulo
                cmd.Parameters.Add("@idSubModulo", SqlDbType.Int).Value = pOpciones.idSubModulo
                cmd.Parameters.Add("@idOpcion", SqlDbType.Int).Value = pOpciones.idOpcion
                Try
                    cn.Open()
                    cmd.ExecuteNonQuery()
                    resultado = True
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return resultado
    End Function
    Public Shared Function SeleccionarTodos(ByVal descEmpresa As String, ByVal pPerfilOpciones As EperfilOpciones) As List(Of EperfilOpciones)
        Dim perfilOpciones As List(Of EperfilOpciones) = Nothing

        Using cn As New SqlConnection(ConfigurationManager.ConnectionStrings(descEmpresa).ConnectionString)
            Using cmd As New SqlCommand("usp_opcion_selXEstado2", cn)
                cmd.CommandType = CommandType.StoredProcedure
                cmd.Parameters.Add("@idPerfil", SqlDbType.Int).Value = pPerfilOpciones.idPerfil
                Try
                    cn.Open()
                    Using dr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.SingleResult Or CommandBehavior.CloseConnection)
                        If dr.HasRows Then
                            perfilOpciones = New List(Of EperfilOpciones)
                            Dim perfilOpcion As EperfilOpciones = Nothing
                            Do While dr.Read
                                perfilOpcion = New EperfilOpciones( _
                                    dr.GetInt32(dr.GetOrdinal("idPerfil")), _
                                    dr.GetInt32(dr.GetOrdinal("idModulo")), _
                                    dr.GetString(dr.GetOrdinal("descModulo")), _
                                    dr.GetInt32(dr.GetOrdinal("idSubModulo")), _
                                    dr.GetString(dr.GetOrdinal("descSubModulo")), _
                                    dr.GetInt32(dr.GetOrdinal("idOpcion")), _
                                    dr.GetString(dr.GetOrdinal("descOpcion")), _
                                    dr.GetString(dr.GetOrdinal("estado")), _
                                    dr.GetString(dr.GetOrdinal("Checked")))
                                perfilOpciones.Add(perfilOpcion)
                            Loop
                            dr.Close()
                        End If
                    End Using
                Catch ex As Exception
                    Throw
                End Try
            End Using
        End Using

        Return perfilOpciones
    End Function
End Class
